/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tesoreria.be;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Gilmar Montoya
 */
@Entity
@Table(name = "tes_presupuesto")
//@NamedQueries({@NamedQuery(name = "Presupuesto.findAll", query = "SELECT p FROM Presupuesto p"), @NamedQuery(name = "Presupuesto.findByPreCodigo", query = "SELECT p FROM Presupuesto p WHERE p.preCodigo = :preCodigo"), @NamedQuery(name = "Presupuesto.findByPreNombre", query = "SELECT p FROM Presupuesto p WHERE p.preNombre = :preNombre")})
public class Presupuesto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "pre_codigo", nullable = false, length = 20)
    private String preCodigo;
    @Column(name = "pre_nombre", length = 150)
    private String preNombre;
    @Column(name = "pre_estado")
    private EnumEstadoPresupuesto preEstado;
    @OneToMany(mappedBy = "presupuesto", fetch = FetchType.LAZY)
    private List<CuentaContable> listaCuentasContables;

    public Presupuesto() {
    }

    public Presupuesto(String preCodigo) {
        this.preCodigo = preCodigo;
    }

    public String getPreCodigo() {
        return preCodigo;
    }

    public void setPreCodigo(String preCodigo) {
        this.preCodigo = preCodigo;
    }

    public String getPreNombre() {
        return preNombre;
    }

    public void setPreNombre(String preNombre) {
        this.preNombre = preNombre;
    }

    public String getNombreLargoPresupuesto() {
        try {
            return preCodigo + "-" + preNombre;
        } catch (Exception ex) {
            return "Error";
        }
    }

    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (preCodigo != null ? preCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Presupuesto)) {
            return false;
        }
        Presupuesto other = (Presupuesto) object;
        if ((this.preCodigo == null && other.preCodigo != null) || (this.preCodigo != null && !this.preCodigo.equals(other.preCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.tesoreria.be.Presupuesto[preCodigo=" + preCodigo + "]";
    }

    /**
     * @return the listaCuentasContables
     */
    public List<CuentaContable> getListaCuentasContables() {
        return listaCuentasContables;
    }

    /**
     * @param listaCuentasContables the listaCuentasContables to set
     */
    public void setListaCuentasContables(List<CuentaContable> listaCuentasContables) {
        this.listaCuentasContables = listaCuentasContables;
    }

    /**
     * @return the preEstado
     */
    public EnumEstadoPresupuesto getPreEstado() {
        return preEstado;
    }

    /**
     * @param preEstado the preEstado to set
     */
    public void setPreEstado(EnumEstadoPresupuesto preEstado) {
        this.preEstado = preEstado;
    }

}
